package com.dxf.chepter08

/**
 * view 视图
 *    1 view 方法产出一个总是被懒执行的集合
 *    2 view 不会缓存数据,每次都要重新计算
 *
 *
 *  使用:
 *    view懒加载,如果想要真正计算动作往后推迟,用 集合.view.map.filter
 *
 *
 *
 *
 *
 */
object T103_视图 {


  def main(args: Array[String]): Unit = {

    //没有使用view
    val viewSquare1 = (1 to 100).map(multiple _).filter(eq)

    println(viewSquare1)//Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99)

    //使用视图

    val viewSquare2 =(1 to 100).view.map(multiple _).filter(eq _)
    println(viewSquare2)//SeqViewMF(...)
    viewSquare2.foreach(println)


  }

  def multiple(num: Int): Int = {
    num
  }

  def eq(i: Int): Boolean = {
    i.toString.equals(i.toString.reverse)
  }


}

